Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[react-is] export individual modules to enable tree-shaking capabilities #13250

Closed

Conversation

pgarciacamou
Copy link

@pgarciacamou pgarciacamou commented Jul 23, 2018

What is the issue

Tree shaking not enabled with react-is.

import * as ReactIs from "react-is";
ReactIs.isValidElementType(<div />); // true

Expected behavior

Allow importing individual modules from the package.

import { isValidElementType } from "react-is";
isElement(<div />); // true

Checklist

  • fix bug
  • yarn
  • yarn test
  • yarn test-prod
  • yarn prettier
  • yarn lint
  • yarn flow dom && yarn flow test
  • complete the CLA

@facebook-github-bot
Copy link

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need the corporate CLA signed.

If you have received this in error or have any questions, please contact us at cla@fb.com. Thanks!

Profiler,
Portal,
StrictMode,
isValidElementType,
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if this line will work, any comments are welcomed.

@jquense
Copy link
Contributor

jquense commented Jul 23, 2018

Hey there thanks for the PR. I'm not sure what you'r trying to accomplish here, export * from ''./src/ReactIs' and explicitly exporting each export should be equivalent. e.g. the export * is shorthand for what you've added here.

@pgarciacamou
Copy link
Author

pgarciacamou commented Jul 23, 2018

@jquense

What I'm trying to accomplish is to do import { isValidElementType } from "react-is". It doesn't work with this PR made to react-redux reduxjs/react-redux#971

Also, I found an old thread in webpack which I'm unsure if it was ever fixed webpack/webpack#2847

@aweary
Copy link
Contributor

aweary commented Jul 23, 2018

We'd need to add an ESM build to support tree-shaking, per this comment

@pgarciacamou
Copy link
Author

pgarciacamou commented Jul 23, 2018

@aweary can you point me in the right direction? I'm not sure what ESM means. I'll try to get a PR open.

@facebook-github-bot
Copy link

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

@timdorr
Copy link

timdorr commented Jul 24, 2018

@pgarciacamou ESM = ES Modules = import/export

@pgarciacamou
Copy link
Author

pgarciacamou commented Jul 26, 2018

Well, I'm totally lost on how to do that in such a big project like React.

I want to believe I've narrow it down to https://github.com/facebook/react/blob/master/scripts/rollup/build.js#L448-L478 but I'm not sure.

There is a related issue maybe: #11503, but I think that is only around the top level API and not the packages.

I'm going to create an issue about react-is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants